#ifndef JUGADORSERVERIMP_H_
#define JUGADORSERVERIMP_H_

#include "Observable.h"
#include "Jugador.h"
#include "socket.h"
using namespace red::sockets;

/**Extiende el comportamiento de un Jugador agregandole la capacidad de notificar cuando cambia de estado
 * a sus Observers y asociandole un socket.
 */

class JugadorServerImp : public Jugador, public Observable
{
private:
	Socket* socket;
public:
	JugadorServerImp(std::string id, std::string color);
	
	JugadorServerImp(Socket* socket);
	/*@override*/
	void asignarEjercitos(unsigned int cantidadDeEjercitos);
	/*@override*/
	void quitarEjercitos(unsigned int cantidadDeEjercitos);
	/*@override*/
	void setCartaDeObjetivos(CartaDeObjetivos* cartaDeObjetivos);
	
	Socket* getSocket();
	virtual ~JugadorServerImp();
};

#endif /*JUGADORSERVERIMP_H_*/
